﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
using Website.Logger;
using DAL;
using UtilityExtensions;
using BOL;
using BOL.Ventas;
using WebLib;
using System.Web.Script.Services;
using System.Web.Services;


namespace UILGestion.VentaAdmin.Proforma
{
    public partial class ProformaReadForm : System.Web.UI.Page
    {
        public ProformaReadForm()
        {
            bol = new ProformaBL();
        }

        private ProformaBL bol;
        private string ORDENVENTAITEMINFO = "OrdenVentaItemInfo";

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                try
                {
                    
                    internalID.Value = (string)Request.QueryString["id"];
                    idProyecto.Value = (string)Request.QueryString["idProyecto"];
                    paginaAnt.Value = Page.Request.UrlReferrer.AbsoluteUri;
                    menuCtrl1.loadMenuVenta(idProyecto.Value.ToInt());
                    FormatForm();

                }
                catch (SqlException sqlex)
                {
                    WebServerSideSqlError.Log(sqlex);

                    ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                     "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);


                }
                catch (Exception ex)
                {
                    WebServerSideError.Log(ex);
                    ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                         "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);

                }

            }
        }

        private void FormatForm()
        {
            Load();
        }

       
        private void Load()
        {
            idColeccion.Value = Parametros.GenerarID().ToString();
            DAL.Proforma proforma = DbUtil.Db.Proformas.Single(p => p.idInternal == internalID.Value.ToInt());

            numDocumentoLBL.Text = proforma.numDocumento;
            fechaTXT.Text = proforma.fecha.ToShortDateString();
            nombreTXT.Text = proforma.nombre;
            apellidoTXT.Text = proforma.apellido;
            dniTXT.Text = proforma.docCliente;
            direccionTXT.Text = proforma.direccion;
            telefonoTXT.Text = proforma.telefono;
            correoElectronicoTXT.Text = proforma.email;
            bancoDDL.Text = proforma.idBanco != null ? proforma.Banco.descripcion : "";

            celularTXT.Text = proforma.celular;
            formatoVentaDDL.Text = proforma.FormatoVenta.descripcion;
            direccionTXT.Text = proforma.direccion;
            var moned=DbUtil.Db.Monedas.Single(p=>p.idInternal==proforma.idMoneda);
            monedaDDL.Text = moned.descripcion;
            //observacionTXT.Text = proforma.obser;
            enterasteDDL.Text = proforma.GrupoDatoitem.descripcion;

            //lo que se esta seleccionando es de la misma moneda
            
            contadoLBL.Text = string.Empty;
            contadoTXT.Text = string.Empty;
            chLBL.Text = string.Empty;
            chTXT.Text = string.Empty;

            bonoTXT.Text = string.Empty;
            bonoLBL.Text = string.Empty;

            tipoIngresoTXT.Text = proforma.tipoIngreso.HasValue() ? proforma.tipoIngreso : "";
            observacionFinTXT.Text = proforma.tipoIngreso.HasValue() ? proforma.observacionFinan : "";

                //DAL.UI unidad = DbUtil.Db.UIs.Single(p => p.idInternal == item.Field<int>("idUI"));

            totalTXT.Text = proforma.Moneda.simbol + " " + proforma.total.ToString("N");
                contadoLBL.Text = proforma.FormatoVenta.idinternal == 1 ? "Contado:" : "Cuota Inicial";

                contadoTXT.Text = proforma.Moneda.simbol + " " + proforma.contado.Value.ToString("N");
                if (proforma.FormatoVenta.bitCH)
                {
                    chLBL.Text = "Credito Hipotecario";
                    chTXT.Text =proforma.Moneda.simbol+" "+ proforma.financiado.Value.ToString("N");
                }
                if (proforma.FormatoVenta.bitBono)
                {
                    bonoLBL.Text = "Bono";
                    bonoTXT.Text = proforma.Moneda.simbol + " " + proforma.bono.Value.ToString("N");
                }

                var q = proforma.ProformaItems.ToList();
                    int i=0;

                foreach (var item in q)
                {
                    i++;
                    item.idInternal = i;
                }

                itemGridView.DataSource = q;
                itemGridView.DataBind();

            
            }
       
      

        protected void button(object sender, EventArgs e)
        {
            try
            {

                if (((Button)sender).ID == refreshBTN.ID)
                {
                    FormatForm();
                }
                if (((Button)sender).ID==nuevoBTN.ID)
                {
                    Response.Redirect("~/VentaAdmin/Proforma/ProformaEditForm.aspx?type=A&idProyecto={0}".Fmt(idProyecto.Value), true);
                }
                if (((Button)sender).ID == EditarBTN.ID)
                {
                    Response.Redirect("~/VentaAdmin/Proforma/ProformaEditForm.aspx?type=E&id={0}&idProyecto={1}".Fmt(internalID.Value, idProyecto.Value), true);
                }
                if (((Button)sender).ID == eliminarBTN.ID)
                {
                    bol.Delete(internalID.Value.ToInt());
                    try
                    {
                        Response.Redirect(paginaAnt.Value, true);
                    }
                    catch (Exception)
                    {
                        Response.Redirect("~/VentaAdmin/Proforma/UIProformaListForm.aspx?idProyecto={0}".Fmt(idProyecto.Value), true);
                    }
                    
                }
                if (((Button)sender).ID == ListaBTN.ID)
                {
                    Response.Redirect("~/VentaAdmin/Proforma/UIProformaListForm.aspx?idProyecto={0}".Fmt(idProyecto.Value), true);
                }

                
                if (((Button)sender).ID == anteriorBTN.ID)
                {
                    int idAnterior=new DAL.UILocalizacion().getidAnterior(DbUtil.Db, internalID.Value.ToInt(),idEtapa.Value.ToInt()); //proyecto venta
                    Response.Redirect("~/VentaAdmin/Proforma/ProformaReadForm.aspx?id={0}&idProyecto={1}".Fmt(idAnterior,idProyecto.Value), true);
                }
                if (((Button)sender).ID == siguienteBTN.ID)
                {
                    int idSiguiente = new DAL.UILocalizacion().getidAnterior(DbUtil.Db, internalID.Value.ToInt(), idEtapa.Value.ToInt()); //proy
                    Response.Redirect("~/VentaAdmin/Proforma/ProformaReadForm.aspx?id={0}&idProyecto={1}".Fmt(idSiguiente, idProyecto.Value), true);
                }

            }
            catch (SqlException sqlex)
            {
                WebServerSideSqlError.Log(sqlex);

                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);


            }
            catch (Exception ex)
            {
                WebServerSideError.Log(ex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                     "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);

            }
        }

    }
}